package models;

import java.sql.SQLException;
import java.util.GregorianCalendar;
import java.util.List;

import models.dados.ChaveRepetidaException;
import models.dados.DadoNaoEncontradoException;

public interface InterfaceServicosCliente {
	
	
	Cliente getCliente(String usuario) throws DadoNaoEncontradoException;
	boolean login(String usuario, String senha) throws DadoNaoEncontradoException, UsuarioBloqueadoException;
	void cadastrarCliente(String nome,String rua, int numero, String bairo,String complemento,
			String cep,String telefone,String email, String nomeUsuario,String senha) throws ChaveRepetidaException;
	void alterarDadosCadastrais(String usuario,String nome, String rua,int numero,String bairro,String complemento,String cep,String telefone,String email) throws DadoNaoEncontradoException;
	
	void adicionarProduto(Produto produto,int quantidade);
	void finalizarPedido(String nome, String rua,int numero,String bairro,String complemento,String cep,String email,String telefone) throws ChaveRepetidaException, DadoNaoEncontradoException;
	void finalizarPedido(String usuario) throws DadoNaoEncontradoException;
	void cancelarPedido(long id,String usuario) throws DadoNaoEncontradoException, AcessoNegadoException, UsuarioBloqueadoException;
	Pedido getPedidoAtual();
	Pedido getPedido(long numero) throws DadoNaoEncontradoException;
	void alterarSenha(String senhaAntiga, String novaSenha,String usuario) throws  DadoNaoEncontradoException, SenhaIncorretaException, UsuarioBloqueadoException;
	Produto pesquisarProduto(String nome) throws DadoNaoEncontradoException;
	List<Produto> listarDonuts() throws SQLException;
	List<Pedido> listarPedidos(long numero,String status,String usuario,GregorianCalendar dataExata,GregorianCalendar dataInicial,GregorianCalendar dataFinal) throws DadoNaoEncontradoException;
	
	

	
	
	

}
